/**
 * Copyright 2008-2009. Chongqing Communications Industry Services Co.,Ltd Information Technology Branch. All rights
 * reserved. <a>http://www.cqcis.com</a>
 */
package com.cqcis.uip.base.framework.service;

import com.cqcis.uip.base.framework.common.Task;
import com.cqcis.uip.base.framework.utils.ByteBuffer;

/**
 * stream日志保存服务, 将会忽略interfacelog表中的recv或send路径
 * 
 * @author huangmy
 * @date   2008-11-11
 */
public interface StreamLogOutputService {
	/**
	 * 保存
	 * 
	 * @param task 
	 * @param fileName
	 * @param sendFile  true 发送文件, false 接受文件
	 * @param buffer
	 * @return 返回保存的日志路径
	 * @throws Exception
	 */
	public String write(Task task, String fileName, boolean sendFile, ByteBuffer buffer);
	
	/**
	 * 保存
	 * 
	 * @param recordId
	 * @param fileName
	 * @param sendFile true 发送文件, false 接受文件
	 * @param buffer
	 * @return
	 * @throws Exception
	 */
	public String write(String recordId, String fileName, boolean sendFile, ByteBuffer buffer);
	
	/**
	 * 保存收发数据
	 * 
	 * @param recordId
	 * @param sendFileName
	 * @param sendBuffer
	 * @param recvFileName
	 * @param recvBuffer
	 * @return
	 * @throws Exception
	 */
	public void write(String recordId, String sendFileName, ByteBuffer sendBuffer, 
			String recvFileName, ByteBuffer recvBuffer);
	
	/**
	 * 文件名自动生成
	 * 
	 * @param recordId
	 * @param sendBuffer
	 * @param recvBuffer
	 */
	public void write(String recordId, ByteBuffer sendBuffer, ByteBuffer recvBuffer);
	
	/**
	 * 只有一个文件，指定文件名; 默认为sendfile
	 * 
	 * @param recordId
	 * @param fileName
	 * @param buffer
	 */
	public void write(String recordId, String fileName, ByteBuffer buffer);
	
	/**
	 * 只有一个文件，文件名自动生成; 默认为sendfile
	 * 
	 * @param recordId
	 * @param buffer
	 * @return 返回自动生成的文件名
	 */
	public String write(String recordId, ByteBuffer buffer);
}
